System for detecting and characterizing inputs on a touch sensor

ABSTRACT

One variation of a method for characterizing inputs includes: scanning an array of sense electrodes at a first resolution to generate a first force image; detecting a first force input in the first force image; in response to a first geometry dimension of the first force input exceeding a first threshold, characterizing the first force input as a non-stylus input type; in response to the first geometry dimension of the first force input remaining below the first threshold: scanning the array of sense electrodes at a second resolution; detecting a second force input in a second force image; and, in response to a ratio of a force magnitude of the second force input to a geometry dimension of the second force input exceeding a second threshold, characterizing the first force input as a stylus input type; and outputting a location and a type of the first force input.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation of U.S. patent application Ser. No.16/600,432, filed on Oct. 11, 2019, which is a continuation of U.S.patent application Ser. No. 15/701,320, filed on Sep. 11, 2017, whichclaims the benefit of U.S. Provisional Application No. 62/385,310, filedon Sep. 9, 2016, each of which is incorporated in its entirety by thisreference.

U.S. patent application Ser. No. 16/600,432 is also a continuation ofU.S. patent application Ser. No. 15/701,332, filed on Sep. 11, 2017,which claims the benefit of U.S. Provisional Application No. 62/385,310,filed on Sep. 9, 2016, which is incorporated in its entirety by thisreference.

This Application is related to U.S. patent application Ser. No.15/224,003, filed on Jul. 29, 2016; U.S. patent application Ser. No.15/223,968, filed on Jul. 29, 2016; U.S. patent application Ser. No.15/470,669, filed on Mar. 27, 2017; and U.S. patent application Ser. No.15/476,732, filed on Mar. 31, 2017, all of which are incorporated intheir entireties by this reference.

TECHNICAL FIELD

This invention relates generally to the field of touch sensors and morespecifically to a new and useful system for detecting and characterizinginputs on a touch sensor in the field of touch sensors.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a flowchart representation of a system;

FIG. 2 is a flowchart representation of a method;

FIG. 3 is a schematic representation of one variation of the system;

FIG. 4 is a schematic representation of one variation of the system;

FIG. 5 is a graphical representation of one variation of the system;

FIG. 6 is a graphical representation of one variation of the system;

FIG. 7 is a graphical representation of one variation of the system;

FIG. 8 is a flowchart representation of one variation of the method;

FIG. 9 is a flowchart representation of one variation of the method; and

FIGS. 10A and 10B is a flowchart representation of one variation of themethod.

DESCRIPTION OF THE EMBODIMENTS

The following description of embodiments of the invention is notintended to limit the invention to these embodiments but rather toenable a person skilled in the art to make and use this invention.Variations, configurations, implementations, example implementations,and examples described herein are optional and are not exclusive to thevariations, configurations, implementations, example implementations,and examples they describe. The invention described herein can includeany and all permutations of these variations, configurations,implementations, example implementations, and examples.

1. System

As shown in FIG. 1, a system for detecting and characterizing inputs ona touch sensor surface includes: a touch sensor 110 including: asubstrate 112; an array of sense electrodes 114 patterned across thesubstrate 112; and a resistive layer 116 arranged over the substrate 112and including a material exhibiting changes in local contact resistanceresponsive to variations in magnitude of force communicated into theresistive layer 116; a force-spreading layer 120 arranged over theresistive layer 116, defining the touch sensor surface 122, anddistributing a force applied on and normal to the touch sensor surface122 laterally and into the resistive layer 116; and a controller 130configured to: detect an input on the force-spreading layer 120 based onlocal changes in resistance within the resistive layer 116 measured by asubset of sense electrodes in the touch sensor; and characterize theinput as one of a stylus input and a non-stylus input based on a ratioof a detected force magnitude to a detected area of the input on theforce-spreading layer 120.

2. Applications

Generally, the system includes: a touch sensor no; a force-spreadinglayer 120 that spreads an applied force laterally and communicates thisspread force into the touch sensor; and a controller 130 that reads thetouch sensor no during a sampling period, detects the magnitude,location, and contact area of a force applied to the touch sensorsurface 122, determines a type of the object that applied the forcebased on these data, and packages these data and the objectcharacterization into a touch image (or a list of touch contactlocations, etc.) that can be read by an integrated or connectedcomputing device to control a cursor, enter a keystroke, or otherwisecontrol a user interface. In particular, the system can function as aperipheral or integrated input device for a computing device and candetect, characterize, and assemble inputs into touch images or lists oftouch contacts that can be read to control various functions of thecomputing device. For example, the system can define a peripheraltouchpad or keyboard that can be transiently coupled to a laptopcomputer or tablet, a touchpad or keyboard integrated into a laptopcomputer, a tablet, mobile phone, or a touchpad integrated into aperipheral keyboard, etc. and that outputs one touch image containingrepresentations of forces applied to the touch sensor surface 122 perscan cycle (e.g., at a rate of 100 Hz).

A user can thus enter an input (e.g., a force input) on the touch sensorsurface 122, such as with a stylus (e.g., an active, passive, orcapacitive multi-touch pen) or with a finger, and the controller 130 canidentify this input based on a local change in contact resistance of theresistive layer 116 (or other electrical property, such as capacitance)detected by one or more sense electrodes in the touch sensor.Furthermore, the force-spreading layer 120 functions to distribute aforce—applied by an object on the touch sensor 110—laterally as thisforce is communicated into the resistive layer 116, thereby spreadingthis force over a greater area of the resistive layer 116, yieldingreduced compression of the resistive area over a greater area, andredistributing changes in contact resistance of the resistive layer 116resulting from the input over a greater number of sense electrodes. Theforce-spreading layer 120 can thus increase the effective dynamic rangeof the system, enable the controller 130 to repeatedly detect a forceinput over an input area of dimension similar to or less than the senseelectrode pitch in the touch sensor no by spreading such a force overmultiple sense electrodes, and enable the controller 130 to distinguishan input by a finger (which may have a relatively low ratio of appliedforce to input area), an input by a stylus (which may have a relativelyhigh ratio of applied force to input area), and an input by a palm orother non-stylus device (which may have a relatively low ratio ofapplied force to input area). Furthermore, the force-spreading layer canincrease sensor accuracy by spreading forces applied to the touch sensorsurface over multiple sense electrodes, thereby decreasing a peak forcedetected at each sense electrode. By distributing force over multiplesense electrodes, the force-spreading layer can increase probabilitythat the peak force falls within a dynamic sensing range of each senseelectrode and, thus, avoid saturating (or oversaturating) one or moresense electrodes proximal a force-input. Thus, the system candifferentiate between input types and output commands to a computingdevice, such as a computer system or a mobile computing device (e.g., asmartphone), coupled to the system to render appropriate graphicalrepresentations corresponding to the type of input detected by thesystem. For example, the system can detect a stylus input. A computingdevice coupled to the system can therefore draw a point (e.g., in asketching software program) at a location within a window rendered on adisplay of the computing device corresponding to a location of thestylus input. Similarly, the system can detect a finger input and thecomputing device coupled to the system can scroll or toggle through adocument rendered in the window rather than drawing a point or line overthe document. Additionally, the system can detect a palm or othernon-stylus input and the controller of the system can reject the inputas incidental due to natural contact of a user's hand (e.g., knuckle,finger, or wrist) with the touch sensor surface as the user writes ordraws with a stylus on the touch sensor surface. Therefore, the systemcan be configured to distinguish between intentional and incidentalinputs to improve accuracy and relevance of graphical representations ofinputs detected on the touch sensor surface.

Additionally, the system can learn and adapt to input patterns to, inreal-time, predict an input type and output an appropriate commandcorresponding to the input type while minimizing computationalprocessing and latency to distinguish the input type. For example, as auser writes with a stylus on the touch sensor surface, the system canrecord the user's handwriting position and contact patterns with thetouch sensor surface. In this example, the user may tend to drag herwrist and pinky finger across the touch sensor surface while writingwith a stylus or other pen held in her right hand. As described below,during an initiation period, the system can detect a pattern of inputsto the touch sensor surface to learn the user's handwriting position. Inresponse to detecting the pattern of inputs at a future time, the systemcan determine that the user is likely writing on the touch sensorsurface with a stylus; thus, the system can flag inputs in the patternof inputs according to input type labels assigned to inputs in thepattern of inputs during the initiation period and reject (or omit theoutput from the system) non-stylus (e.g., finger or palm) input typeswithin the pattern of inputs. Therefore, the system can be configured toreduce latency between a handwriting input event on a touch sensorsurface and rendering a graphical representation of the handwritinginput event for real-time emulation of handwriting on the touch sensorsurface.

Furthermore, the system can be configured to reduce input noise andimprove accuracy of input type classifications such that a computingdevice coupled to the touch sensor can render relevant and smoothgraphical representations of an input detected by the system. The systemcan detect and interpolate locations and force magnitudes of inputs and,as described above, reduce latency to improve smoothness (i.e., reducenoise), magnitude, and accuracy of a graphical representation of theinput (e.g., a line drawn across the touch sensor surface with astylus).

The system is described herein as including a force-spreading layer 120and a controller 130 that cooperate to detect and distinguish an inputby a palm and an input by a stylus. However, the system can be similarlyconfigured to detect and distinguish inputs by any other object orsurface, such as a finger, a glove, a paint brush, etc.

3. Touch Sensor

As shown in FIGS. 1, 3, and 4, the touch sensor 110 includes: an arrayof sense electrode and drive electrode pairs patterned across asubstrate 112 (e.g., a fiberglass PCB); and a force-sensitive resistivelayer 116 arranged over the substrate 112 in contact with the sense anddrive electrode pairs (or “sense electrodes”), defining a materialexhibiting variations in local bulk resistance and/or local contactresistance responsive to variations in force applied to the touch sensorsurface 122 above. As described in U.S. patent application Ser. No.14/499,001, the resistive touch sensor can include a grid ofinter-digitated drive electrodes and sense electrodes patterned acrossthe substrate 112. The resistive layer 116 can span gaps between eachdrive and sense electrode pair across the substrate 112 such that, whena localized force is applied to the touch sensor surface 122, theresistance across an adjacent drive and sense electrode pair variesproportionally (e.g., linearly, inversely, quadratically, or otherwise)with the magnitude of the applied force. As described below, thecontroller 130 can read resistance values across each drive and senseelectrode pair within the touch sensor 110 and can transform theseresistance values into a position and magnitude of one or more discreteforce inputs applied to the touch sensor surface 122 and cancharacterize each discrete force input as one of a stylus input and afinger input.

In one implementation, the substrate 112 defines a rigid substrate 112,such as in the form of a rigid PCB (e.g., a fiberglass PCB) or a PCB ona rigid backing (e.g., an aluminum backing plate); and rows and columnsof drive and sense electrodes are patterned across the top of thesubstrate 112 to form an array of sense electrodes 114. The resistivelayer 116 is installed over the array of sense electrodes 114 andconnected to the substrate 112 about its perimeter. As described below,the force-spreading layer 120 can be fabricated, bonded, installed, orotherwise incorporated into the system over the resistive layer 116.

4. Controller

As shown in FIGS. 1 and 2, the controller 130 is configured to: detect aforce input on the touch sensor surface 122 based on local changes inresistance in the resistive layer 116 measured by a subset of senseelectrodes in the touch sensor no and to characterize the input as oneof a stylus input and a non-stylus (e.g., finger, knuckle, or palm)input based on a detected force magnitude and a detected area of theinput on the touch sensor surface 122. Generally, the controller 130functions to drive the touch sensor, to read resistance values betweendrive and sense electrodes during a scan cycle, to transform resistancedata from the touch sensor no into locations and magnitudes of forceinputs over the touch sensor surface 122, and to characterize a detectedinput (e.g., as one of a stylus input or a non-stylus input) based on aratio of area to force magnitude of the input, as described below. Thecontroller 130 can also function to transform locations and/ormagnitudes of forces recorded over two or more scan cycles into agesture, a cursor motion vector, a keystroke, or other command, such asbased on the type of input, and to output such command to a computingdevice in which the system is integrated or to which the system isconnected. For example, for the system that is integrated into a largercomputing device, the controller 130 can access preprogrammed commandfunctions stored in memory in the computing device, such as commandfunctions including a combination of trackpad and keyboard valuesreadable by the computing device to move a virtual cursor, to scrollthrough a text document, to expand a window, to translate and rotate a2D or 3D virtual graphical resource within a window, or to enter textand keyboard shortcuts, etc.

In one implementation, the controller 130 includes: an array columndriver (ACD); a column switching register (CSR); a column driving source(CDS); an array row sensor (ARS); a row switching register (RSR); and ananalog to digital converter (ADC); as described in U.S. patentapplication Ser. No. 14/499,001. In this implementation, the touchsensor 110 can include a variable impedance array (VIA) that defines:interlinked impedance columns (IIC) coupled to the ACD; and interlinkedimpedance rows (IIR) coupled to the ARS. During a resistance scan cycle:the ACD can select the IIC through the CSR and electrically drive theIIC with the CDS; the VIA can convey current from the driven IIC to theIIC sensed by the ARS; the ARS can select the IIR within the touchsensor 110 and electrically sense the IIR state through the RSR; and thecontroller 130 can interpolate sensed current/voltage signals from theARS to achieve substantially accurate detection of proximity, contact,pressure, and/or spatial location of a discrete force input over thetouch sensor 110 for the resistance scan cycle within a single scancycle.

The controller 130 can be arranged on substrate 112 to form a fullycontained touch sensor that: receives power from the connected computingdevice, detects inputs on the touch sensor surface 122; and processesthese inputs. Alternatively, all or portions of the controller 130 canbe remote from the substrate 112, such as arranged within the connectedcomputing device and/or physically coextensive with one or moreprocessors or controllers 130 within the connected or integratedcomputing device.

5. Force-Spreading

As shown in FIG. 1, the force-spreading layer 120 is arranged over theresistive layer 116, defines a touch sensor surface, and distributes aforce applied on and normal to the touch sensor surface 122 laterallyand into the resistive layer 116. Generally, the force-spreading layer120 functions to communicate a force—applied to the touch sensor surface122 by an object—into the sensor over an area greater than the contactarea between the object and the touch sensor surface 122. In particular,the force-spreading layer 120 can include one or more materials of aparticular geometry that spreads a force applied by an object (e.g., astylus, a finger, a palm) to the touch sensor surface 122 acrossmultiple sense electrodes in the touch sensor 110 such that: the systemcan detect, locate, and characterize an object (e.g., a stylus)contacting the touch sensor surface 122 over an area substantiallysimilar to or less than an active sense electrode pitch while alsopreserving unique contact-area-to-applied-force ratios characteristic ofdifferent objects in contact with the touch sensor surface 122.

In one implementation, the force-spreading layer 120 includes a sheet ofmaterial relatively more rigid than the resistive layer 116, such as asheet of glass, polycarbonate, urethane, or rubber (e.g., silicone)layer of a relatively high durometer (e.g., Shore 70A or greater). Theforce-spreading layer 120 can be bonded directly over the resistivelayer 116, such as with a thin layer of UV-curable adhesive or pressuresensitive adhesive as shown in FIG. 1. Alternatively, theforce-spreading layer 120 can include an elastic layer interposedbetween the rigid sheet and the resistive layer 116, as shown in FIG. 3,and this elastic layer can function as a buffer that permits the rigidlayer to deform inwardly toward the resistive layer 116 under and aroundthe location of a force input (e.g., by a finger or stylus) on the touchsensor surface 122. For example, the force-spreading layer 120 caninclude a urethane, polycarbonate, or PET sheet 0.1 to 0.5 millimeter inthickness bonded over an elastic layer—or a “buffer layer” of solidsilicone or close-cell silicone foam—0.1 to 0.5 mm in thickness with athin layer of adhesive (e.g., UV-curable or pressure-sensitiveadhesive). In this example, the elastic layer can be similarly bondedover the resistive layer 116 opposite the touch sensor. Yetalternatively, the force-spreading layer 120 can include a rigid sheetbonded directly to the resistive layer 116 with a buffer layer includinga relatively thick (e.g., 0.1 to 0.5-millimeter-thick) layer ofadhesive, as shown in FIG. 4. The force-spreading layer 120 can alsoinclude a surface coating exhibiting scratch resistance, dentresistance, impermeability to common fluids, low glare, etc. across thetouch sensor surface 122. However, the force-spreading layer 120 caninclude one or more layers of any other material of any other thicknessor geometry.

In this implementation, the buffer layer can also exhibit otherfunctionality. For example, the buffer layer can include a patternedlight-pipe or back-light configured to distribute light to selectregions of the force-spreading layer 120, such as to visually indicateparticular input regions. In this example, the back side of theforce-spreading layer 120 can patterned with a light-reflective orlight-absorptive coating in order to selectively allow pass lightthrough select areas or the force-spreading layer 120, the back side ofthe force-spreading layer 120 can be patterned with a colored coating or“gel” in order to modify a color of light emitted through theforce-spreading layer 120. Similarly, the buffer layer can include aflexible display or can include an elastic layer bonded directly aboveor below a flexible display.

The contact area of a stylus tip may be relatively small compared to afinger and may define a contact area similar in size to (or even smallerthan) the pitch between active sense electrodes within the sensor, asshown in FIG. 1. Thus, when a stylus is depressed onto a touch sensorsurface of a similar system without a force-spreading layer 120, a localpressure change within a resistive layer 116 may occur predominantly orexclusively over a single sense electrode within a similar touch sensorin the similar system. When a user draws the stylus across the touchsensor surface 122 of the similar system, such as when writing ordrawing, local reduction in contact resistance over a sense electrode(or local reduction in bulk resistance over the sense electrode) due toincreased local pressure under the tip of the stylus may regularlyexceed the dynamic range of the adjacent sense electrode. Specifically,this local change in contact (or bulk) resistance within the resistivelayer 116 may exceed a range of contact (or bulk) resistance values thata sense electrode within the touch sensor 110 can detect. During commonuse of the stylus, the similar system may therefore be incapable ofdistinguishing stylus inputs of different force magnitudes due tolimited dynamic range of each sense electrode, a low ratio of senseelectrode pitch to stylus tip contact area, and limited force spreadingbetween the touch sensor surface 122 and the resistive layer 116.

Furthermore, for a stylus exhibiting a tip of width (e.g., diameter)similar to or less than the pitch between active sense electrodes withinthe similar system excluding a force-spreading layer 120, a change inthe resistance of the resistive layer 116 due to the stylus input may beseverely localized such that only a single sense electrode within thesimilar system registers a local change in contact resistance indicativeof this input on the touch sensor surface 122. Given detection of theinput by such a limited number of sense electrodes, the similar systemmay have insufficient data to interpolate the real location of the inputon the touch sensor surface 122. Furthermore, given such limited sensordata per stylus input event, the similar system may be incapable ofprecisely (i.e., accurately and repeatably) correlating the magnitudechange in contact resistance measured by an adjacent sense electrodewith the magnitude of the force applied by the stylus. For example, ifthe stylus is applied to the touch sensor surface 122 directly over aparticular sense electrode, the magnitude of change in the output of theparticular sense electrode may be directly proportional to the magnitudeof the force applied by the stylus; however, if the stylus is applied tothe touch sensor surface 122 laterally offset by a small distance (e.g.,0.5 mm) from a nearest sense electrode, the magnitude of change in theoutput of this nearest sense electrode may no longer be proportional tothe magnitude of the force applied by the stylus. Given data from asufficient number of sense electrodes—proximal the stylusinput—indicating a magnitude change in the local contact resistance ofthe resistive layer 116, the similar system may have sufficientinformation to interpolate the real location of the stylus input on thetouch sensor surface 122 to a suitable degree of accuracy (e.g., tosub-sensor-pitch resolution) and then interpolate the real magnitude ofthe applied force given this input location and the magnitude change incontact resistance detected by one sense electrode; however,localization of contact resistance changes within the resistive layer116 to a single sense electrode (or a very limited number of senseelectrodes) in the presence of a stylus input may prevent the similarsystem from accurately interpolating the real location of the input onthe touch sensor surface 122. Similarly, given a known force magnitudeof the stylus input, the similar system may transform a contactresistance change measured at a sense electrode into a real lateraldistance of the center of the input from the sense electrode; however,the similar system may not achieve an accurate force magnitudemeasurement due to such high localization of contact resistance changeswithin the resistive layer 116. Without the force-spreading layer 120,the similar system may therefore be incapable of precisely determiningthe location of a stylus input on the touch sensor surface 122,determining a magnitude of force applied by the stylus, and transformingsense electrode data as the user writes or draws the stylus across thetouch sensor surface 122 into a smooth, continuous input path withsmooth, continuous force magnitude changes.

The system can therefore include a force-spreading layer 120 thatfunctions to distribute a force applied by a stylus to the touch sensorsurface 122 across a region of the resistive layer 116 spanned bymultiple sense electrodes. In particular, in the presence of a stylusinput in which a force exceeding a minimum force threshold is applied tothe touch sensor surface 122, the force-spreading layer 120 candistribute this applied force laterally—that is, perpendicular to thedirection of the applied force—across the resistive layer 116: such thata wider area of the resistive layer 116 is compressed under and aroundthe stylus input; and such that a resulting change to the local contactresistance of the resistive layer 116 across the touch sensor 110 spanscan be measured by multiple sense electrodes regardless of the locationof the stylus input on the touch sensor surface 122.

In one example, the touch sensor 110 includes a grid array of senseelectrodes 114 on a two-millimeter pitch between active senseelectrodes. When the tip of a stylus approximately one millimeter indiameter is depressed onto the touch sensor surface 122 with a forcetypical of writing or drawing, the force-spreading layer 120 can spreadthe force of the stylus from the one-millimeter-diameter contact area toan area approximately five millimeters in diameter area at the touchsensor no (e.g., at the interface between the bottom of the resistivelayer 116 and the top of the sense electrodes). In this example, theforce-spreading layer 120 can communicate a near-point force applied bythe stylus into the resistive layer 116 according to a Gaussiandistribution with peak communicated force coincident the center of thecontact area and with communicated force diminishing toward theperimeter of the communicated force area. Therefore, when the tip of astylus of size similar to the sense electrode pitch of the touch sensor110 is applied to the touch sensor surface 122 under common conditions(e.g., a typical handwriting force), the force-spreading layer 120 cancommunicate this applied force into an area of the resistive layer 116of sufficient size to be detected by at least four active senseelectrodes in the touch sensor. The controller 130 can then reconstructoutputs from these four active sense electrodes into a touch image andanalyze this touch image to both characterize the input as a stylusinput and to determine the location of the input (e.g., the centroid ofthe input area) on the touch sensor surface 122.

In the foregoing example, because the force-spreading layer 120communicates the force applied by the tip of the stylus into the sensorover an area approximately twenty-five times greater than the contactarea of the stylus tip on the touch sensor surface 122, a local pressurerise within the resistive layer 116 directly under the stylus tip due toapplication of the stylus on the touch sensor surface 122 may besimilarly reduced, thereby yielding similar reduction to a change incontact (or bulk) resistance across this region of the resistive layer116 compared to the similar system described above. The single senseelectrode immediately under or nearest the stylus (a “center senseelectrode”) may output a signal of lesser magnitude compared to abaseline due to redistribution of force by the force-spreading layer 120(or redistribution of force to nearby areas of the resistive layer 116may bring the change in contact resistance of the region of theresistive layer 116 over the center sense electrode within the dynamicrange of the center sense electrode). However, by redistributing some ofthe applied force to a surrounding region of the resistive layer 116,the force-spreading layer 120 increases a change to the contactresistance in a region of the resistive layer 116 over sense electrodesadjacent the center sense electrode to a level that falls within thedynamic range of these adjacent sense electrodes (i.e., that can bedetected by the adjacent sense electrodes).

Furthermore, by spreading a force applied to the touch sensor surface122 by a stylus (or by a finger or other object), the force-spreadinglayer 120 can increase the effective dynamic range of the system, suchas to cover a range of forces containing and/or more closely centeredwithin a common range of forces applied by an adult user with a stylusor finger when writing or drawing. For example, when a very light forceis applied to the touch sensor surface 122, the force-spreading layer120 can spread this force only very minimally across a local area of theresistive layer 116. This force may be communicated to a single nearestsense electrode; if this force is of a magnitude that falls within thedynamic range of this nearest sense electrode, this force may bedetected by this sense electrode in the form of a detected change incontact resistance in the resistive layer 116. The controller 130 canthen locate the input within a circular area of diameter equal to thepitch diameter and centered around this one sense electrode. However, ifa slightly greater force is applied to the touch sensor surface 122 by astylus, the force-spreading layer 120 may communicate this force into anarea of the resistive layer 116 spanning two sense electrodes. Thoughthe dynamic ranges of sense electrodes in the touch sensor no are fixedand substantially similar, the increased magnitude of this force yieldsa slight increase in force applied to one sense electrode, but thisforce is now detected by two sense electrodes that cooperate to exhibita greater (e.g., doubled) dynamic range when activated. Furthermore, ifan even greater force is applied to the touch sensor surface 122, theforce-spreading layer 120 can communicate this increased force into aneven greater area of the resistive layer 116 spanning three or moresense electrodes that individually detect changes in contact resistancewithin the resistive layer 116 (correlated with applied force) withintheir singular dynamic ranges but that together cooperate to detect thisapplied force that may be of a magnitude beyond the dynamic range of onesense electrode in the touch sensor.

Furthermore, the force-spreading layer 120 may reduce a local change incontact resistance of the resistive layer 116 over one sense electrode(e.g., by a factor of 25:1) in response to application of a force of agiven magnitude on the touch sensor surface 122, thereby raising theminimum applied force detectable by each sense electrode in the touchsensor. However, this minimum detectable force may still be less than athreshold force magnitude implemented by the controller 130 todistinguish an intentional input of force greater than the thresholdforce magnitude from a resting or inadvertent input less than thethreshold force magnitude. Also by spreading the force applied by thetip of a stylus—of diameter similar to or less than the pitch betweenactive pixels in the touch sensor 110—the force-spreading layer 120 canenable multiple sense electrodes to detect local contact resistancechanges indicative of a local applied force, and the controller 130 cantransform these local contact resistance values into a particularlocation of the center of the tip of the stylus on the touch sensorsurface 122 to a resolution significantly greater than the senseelectrode pitch, as described below.

In the above example in which the touch sensor 110 includes senseelectrodes arranged at a pitch of two millimeters, the force-spreadinglayer 120 can communicate a force—of the same magnitude but applied by afinger (e.g., a pointer finger) to the touch sensor surface 122 over anarea approximately 10 mm in diameter—into the resistive layer 116 overan area approximately fifteen millimeters in diameter. Generally, thecontact area of a stylus tip is relatively small compared to a finger,but forces of similar magnitudes may be applied to the touch sensorsurface 122 by a user with a stylus and a finger alike. Furthermore,once a boundary of an input area is identified, the controller 130 candistinguish a stylus input from a non-stylus input based on a ratio ofinput area to peak force or a ratio of input area to total force, etc.characterizing the input, as described below. Therefore, by spreadingforces applied by both styluses and fingers, the force-spreading layer120 can preserve characteristic differences between stylus inputs andnon-stylus inputs.

In one variation, the force-spreading layer 120 is transiently coupledto the resistive layer 116, such as in the form of an overlay that canbe selectively installed on and removed from the system by a user toachieve different sensitivities to inputs into the system. For example,when using the system with a stylus to enter digital drawing orhandwriting vectors into a computing device, the user can install theforce-spreading layer 120 over the resistive layer 116 to enable thecontroller 130 to detect and distinguish stylus inputs and non-stylusinputs (e.g., finger inputs and palm inputs). In this example, whenusing the system with a broad paintbrush to enter digital brush strokesinto the computing device, the user can remove the force-spreading layer120 over the resistive layer 116 to enable the controller 130 to detectlower-pressure inputs by the paintbrush.

6. Method: Input Detection and Characterization

As shown in FIG. 2, the system 100 can implement the method S100 fordetecting and characterizing inputs on a touch sensor surface of aninput device including: at a first time, scanning an array of senseelectrodes, arranged under the touch sensor surface, at a firstresolution to generate a first force image in Block S110; detecting afirst force input in the first force image in Block S112; in response toa first geometry dimension of the first force input exceeding a firstthreshold, characterizing the first force input as a non-stylus inputtype in Block S120; in response to the first geometry dimension of thefirst force input remaining below the first threshold: at a second timesucceeding the first time, scanning a subset of the array of senseelectrodes at a second resolution greater than the first resolution togenerate a second force image, the subset of the array of senseelectrodes coincident the first force input in Block S122; detecting asecond force input in the second force image proximal the first forceinput in Block S124; and, in response to a second ratio of a secondforce magnitude of the second force input to a second geometry dimensionof the second force input exceeding a second threshold, characterizingthe first force input as a stylus input type in Block S126; andoutputting, to a computing device coupled to the array of senseelectrodes, a location and a type of the first force input in BlockS130.

Generally, during operation, the controller 130 can regularly sampleactive sense electrodes in the touch sensor, such as at a rate of 100Hz, in Block S110 and transform data read from all or a subset of theseactive sense electrodes into the location, force magnitude, and inputtype for each of one or more inputs on the touch sensor surface 122, asshown in FIG. 1.

6.1 3D Force Surface Mesh

The controller 130 can implement Blocks S110 and S112 of the method S100as described in U.S. patent application Ser. No. 14/499,001 to sample anactive sense electrode during a scan cycle in Block S110, the activesense electrode outputting an analog value representing a contactresistance within a region of the resistive layer 116 spanning theground and sense electrodes of the active sense electrode. Thecontroller 130 then compares output values of a set of active senseelectrodes sampled during the scan cycle to one or more (static orrolling) baseline values to identify output changes across a subset ofthese active sense electrodes indicative of a force applied to the touchsensor surface 122 over this subset of active sense electrodes. For eachactive sense electrode in the set or subset of active sense electrodes,the controller 130 can then implement a static conversion coefficient ora parametric conversion model to transform a difference between theactive sense electrode output value and a corresponding baseline valueinto a force value representing a magnitude of a force applied to thetouch sensor surface 122 over the active sense electrode (or into apressure value representing a pressure communicated through theresistive layer 116 into the active sense electrode of known area). Thecontroller 130 can then implement spline interpolation techniques to mapa smooth spline to force values corresponding to active sense electrodesin one row of active sense electrodes in the touch sensor; thecontroller 130 can repeat this process to map a smooth spline to asubset of force values corresponding to active sense electrodes in eachother row and in each other column of active sense electrodes in thetouch sensor, as shown in FIG. 1. For example, the controller 130 canimplement best-fit line techniques and a parametric model for deflectionof the force-spreading layer 120 (such as by a point load) based on themodulus of elasticity of the force-spreading layer 120 to define a shapeor geometry of a spline mapped to two or more force magnitudescalculated from data read from two or more sense electrodes in one rowor in one column of sense electrodes in the touch sensor.

For example, the controller 130 can define a contiguous boundaryencompassing force values, defined in a force image, exceeding a minimumforce threshold; calculate a geometry dimension (e.g., a length or awidth of an area) as a function of an input area encompassed by thecontiguous boundary; and calculate the force magnitude as a function ofa peak force value within the contiguous boundary in the second forceimage.

The controller 130 can thus generate a set of smooth splines (or a setof parametric models of smooth splines), including: a first set ofsmooth splines (or parametric models) in a plane parallel to the X-axisof the touch sensor; and a second set of smooth splines (or parametricmodels) parallel to the Y-axis of the touch sensor no and intersectingsplines in the first set of splits. Based on the known real locations ofeach row and column of active sense electrodes in the touch sensor, thecontroller 130 can assemble the first and second sets of splines (orparametric models) into one virtual three-dimensional surface meshrepresenting force magnitudes (or “3D force surface mesh”)—over abaseline—of one or more discrete inputs on the touch sensor surface 122over each active sense electrode in the touch sensor 110 andinterpolated applied force magnitudes between these active senseelectrodes for the single scan cycle, as shown in FIG. 1. The controller130 can also correct smooth splines (or parametric models defining thesesplines) by applying a rule that overlapping splines in the 3D forcesurface mesh must intersect and by applying a rule that broad regions inthe 3D force surface mesh of similar force magnitudes near a baselineforce magnitude must intersect a single common plane.

6.1 Definite Input Types

Blocks of the method S110 recite: at a first time, scanning an array ofsense electrodes arranged under the touch sensor surface at a firstresolution to generate a first force image in Block S110; detecting afirst force input in the first force image in Block S112; in response toa first geometry dimension of the first force input exceeding a firstthreshold, characterizing the first force input as a non-stylus inputtype in Block S120. Generally, the controller 130 can be configured to:scan sense electrodes; detect inputs; and, based on geometricalproperties and force magnitudes of the inputs, classify the inputs as astylus, a non-stylus, a possible stylus, or a possible non-stylus.

The controller 130 can identify one or more discrete regions of the 3Dforce surface mesh indicating applied force magnitudes greater than a(static or rolling) baseline force magnitude and characterize each ofthese discrete regions in Block S112. For example, for one discreteregion in the 3D force surface mesh indicating an applied force, thecontroller 130 can: identify a peak force magnitude represented in thisdiscrete region; define an area of interest within this discrete regionbounded by force magnitudes of a particular fraction (e.g., 10%) of thepeak force magnitude or bounded by force magnitudes exceeding a commonbaseline force by a threshold force magnitude (e.g., 01N); calculate thearea of this area of interest; and then integrate the total forcerepresented in the 3D force surface mesh within this area of interest,as shown in FIG. 1. The controller 130 can then: calculate a ratio ofpeak force to area for this discrete region; access anpeak-force-to-area model defining characteristic differences in theapplied force area and peak applied force for stylus inputs andnon-stylus inputs; and match the calculated peak-force-to-area ratio forthis discrete region to a labeled division within the peak-force-to-areamodel to determine whether the object in contact with the touch sensorsurface 122 over the discrete region during the scan cycle is resemblesa stylus or a finger. For example, if the area of this discrete regionis less than a threshold area defined in the peak-force-to-area modelfor the peak force represented in the discrete region, the controller130 can characterize the input over a region of the touch sensor surface122 corresponding to this discrete region as a stylus input; similarly,if the area of this discrete region is greater than the threshold areafor the peak force represented in the discrete region, the controller130 can characterize this input as a non-stylus input, as shown in FIG.6.

The controller 130 can additionally or alternatively: calculate a ratioof area to total force for this discrete region; access antotal-force-to-area model defining characteristic differences in theapplied force area and total applied force for stylus inputs andnon-stylus inputs; and match the calculated total-force-to-area ratiofor this discrete region to a labeled division within thetotal-force-to-area model to determine whether the object in contactwith the touch sensor surface 122 over the discrete region during thescan cycle resembles a stylus or a finger, as shown in FIG. 1.Furthermore, the controller 130 can: calculate a ratio of peak force tototal force for this discrete region; access a peak-force-to-total-forcemodel defining characteristic differences in the peak applied force andthe total applied force for stylus inputs and non-stylus inputs; andmatch the calculated peak-force-to-total-force ratio for this discreteregion to a labeled division within the peak-force-to-total-force modelto determine whether the object in contact with the touch sensor surface122 over the discrete region during the scan cycle is resembles a stylusor a finger, as shown in FIG. 5. The controller 130 can thus extractforce and area data from a discrete region of the 3D force surface meshgenerated from contact resistance data (indicative of applied forcemagnitude) read from a set of sense electrodes in the touch sensor 110to characterize the object in contact with the touch sensor surface 122over these sense electrodes as one of a stylus or a finger. Thecontroller 130 can then repeat this process for each other discreteregion—representative of a force input on the touch sensor surface122—in the 3D force surface mesh.

In another implementation, the controller 130 can: detect a force inputfrom the 3D surface mesh generated from contact resistance data; asdescribed below, generate a force image representing the force input andthe 3D surface mesh; calculate a geometry dimension (e.g., an inputarea, a diameter, a width, and/or a length) of the force input; and, inresponse to the geometry dimension of the force input exceeding athreshold, characterizing the first force input as a non-stylus inputtype in Block S120. Generally, the controller 130 can characterize aninput as definitely one of a stylus or non-stylus based on a geometricaldimension, such as an area or a length.

In particular, the controller 130 can calculate a best-fit geometry(e.g., an ellipse) that characterizes an area of the 3D surface meshcoincident the force input and, thus, coincident a region of the 3Dsurface mesh in which force values exceed a minimum force threshold.Thus, the controller 130 can generalize a geometry of the input toapproximate an area of the input against the touch sensor surface 122.

For example, the controller 130 can calculate a best-fit ellipse (orcircle, polygon, and/or any other geometrical shape) encompassing theforce input in a force image depicting the 3D surface mesh. Thecontroller 130 can then extract a geometry dimension, such as a lengthof a major axis of the ellipse or a length of a minor axis of theellipse. In response to the length of the major axis of the ellipseexceeding a threshold length, the controller 130 can characterize theforce input as a (definite) non-stylus input, such as a palm input, asany input applied to the touch sensor surface is distributed across adispersed area larger than a relatively concentrated area expected froma (definite) stylus input. As described below, the controller 130 cancharacterize the input as a possible stylus input in response to thelength of a major axis of the best-fit ellipse remaining below thethreshold; and, thus, rescan the array of sense electrodes at a higherresolution to generate a second force in response to characterizing thefirst input as the possible stylus input.

Additionally or alternatively, the controller 130 can also define acontiguous boundary encompassing (i.e., surrounding) force valuesdefined in the 3D surface mesh and/or in the force image that exceed aminimum force threshold, the contiguous boundary outlining the best-fitgeometry of the force input and/or outlining pixels of the force imagein which force values exceed a threshold force magnitude. In response toa length (e.g., circumference) of the contiguous boundary and/or areaenclosed within the contiguous boundary exceeding a threshold, thecontroller 130 can characterize the force input defined by thecontiguous boundary as a non-stylus input (e.g., a finger input).

However, the controller 130 can characterize definite force input typesin any other suitable way by any other means.

6.4 Touch Image Labeling

The controller 130 can then label each discrete region within atwo-dimensional touch (or force) image—representing force magnitudevalues read from the touch sensor no during the scan cycle—with anobject type thus determined, as shown in FIGS. 1 and 2. The controller130 can also calculate a confidence score for each determined inputtype—such as based on proximity to a boundary with another input type inthe peak-force-to-area model, total-force-to-area model, and/orpeak-force-to-total-force model—and label each discrete region withinthe two-dimensional touch image with a confidence score. Furthermore, inthe foregoing implementation, the peak-force-to-area model,total-force-to-area model, and/or peak-force-to-total-force model canalso define regions representing objects of other types, such as a palm,a paintbrush, a finger contacting a raised or rigid overlay placed overthe touch sensor surface 122, etc.

6.5 Indefinite Input Types

As shown in FIG. 2, Blocks of the method S100 recite: in response to thefirst geometry dimension of the first force input remaining below thefirst threshold: at a second time succeeding the first time, scanning asubset of the array of sense electrodes at a second resolution greaterthan the first resolution to generate a second force image, the subsetof the array of sense electrodes coincident the first force input inBlock S122; detecting a second force input in the second force imageproximal the first force input in Block S124; and, in response to aratio of a force magnitude of the second force input to a secondgeometry dimension of the second force input exceeding a secondthreshold, characterizing the first force input as a stylus input typein Block S126. As described above, the controller 130 is configured toclassify a force input as one of a definite or indefinite non-stylusinput type in Block S120. Generally, the controller 130 is configured toclassify initially indefinite force inputs as one of the stylus andnon-stylus input types.

In particular, in response to detecting an indefinite input type, thecontroller 130 is configured to scan sense electrodes of the array ofsense electrodes at a higher resolution to confirm, with a lower degreeof measurement error, the geometrical dimension of the force input and aforce magnitude of the force input and, from more accurate geometricaldimension and force magnitude data, classify the input as one of thestylus or non-stylus input types. The controller 130 implements theforegoing methods and techniques to compare features extracted from aninput area represented in the 3D force surface mesh—such as total force,peak force, total area, input velocity, etc.—to a virtual model (e.g., avirtual plot) defining discrete areas representing ratios of thesefeatures for which various input types are highly likely (e.g.,“definitive”) and less likely (e.g., “indefinite”), and/or unknown, suchas shown in FIG. 7.

For example, the controller 130 can calculate an area of a discreteinput (or an area of an ellipse approximating the area of the discreteinput or a composite of the major and minor axes of an ellipseapproximating the area of the discrete input) and a peak force withinthis discrete input represented in a 3D force mesh surface generatedduring one scan cycle, as described above. The controller 130 can thenaccess a first virtual plot (or a like virtual model) representing totalarea versus peak force in multiple plot regions: for which a stylusinput type is definite (e.g., for a confidence interval greater than95%); for which a stylus input is possible (e.g., for a confidenceinterval less than 95% for a stylus input type, or for a confidenceinterval greater than 50% for a finger, palm, or knuckle input type);for which a finger, palm, or knuckle input is possible (e.g., for aconfidence interval less than 95% for a stylus input type, or for aconfidence interval greater than 50% for a finger, palm, or knuckleinput type); and for which a finger, palm, or knuckle input type isdefinite (e.g., for a confidence interval greater than 95%), as shown inFIG. 7. In this example, if the total area and peak force of thediscrete input fall within the definitive stylus region of the firstvirtual plot, the controller 130 can label the discrete input as astylus-type input within a touch image corresponding to the current scancycle; the controller 130 can also track the same input area over asubsequent sequence of scan cycles and persist the stylus labelthroughout subsequent corresponding touch images; a connected computingdevice can handle the discrete input accordingly as a stylus input.Similarly, if the total area and peak force of the discrete input fallwithin the definitive finger, palm, or knuckle region of the firstvirtual plot, the controller 130: can label the discrete input as afinger-, palm-, or knuckle-type input within a touch image correspondingto the current scan cycle; and track the same input area over asubsequent sequence of scan cycles and persist the finger-, palm-, orknuckle-type input label throughout subsequent corresponding touchimages. A connected computing device can handle the discrete inputaccordingly as a finger, palm, or knuckle input.

However, if the total area and peak force of the discrete input fallwithin the possible stylus region of the first virtual plot, thecontroller 130 can label the discrete input as possibly a stylus;similarly, if the total area and peak force of the discrete input fallwithin the possible finger, palm, or knuckle region of the first virtualplot, the controller 130 can label the discrete input as possibly not astylus. The controller 130 can track the same input implement usingsimilar methods and techniques to label the input across multiplesucceeding scan cycles. The controller 130 can then confirm that theinput is a stylus type in input if the input is labeled as possibly astylus (i.e., contains features that fall within a possible stylusregion of a virtual plot) at least a first threshold number of times(e.g., ten times) before the input area is labeled as possibly not astylus (i.e., contains features that fall within a possible finger,palm, or knuckle region of the virtual plot) a second number of times(e.g., five times) over the sequence of scan cycles; and retroactivelylabel the discrete input—tracked across the sequence of scan cycles—as astylus-type input in each corresponding touch image accordingly.Similarly, the controller 130 can: confirm that the discrete input is anot stylus after the input area is labeled as possibly not a stylus atleast a threshold number of times (e.g., five times); and retroactivelylabel the discrete input—tracked across the sequence of scan cycles—asnot a stylus-type input (or as a finger-, palm-, or knuckle-type input)in each corresponding touch image accordingly.

If the total area and peak force of the discrete input fall within thepossible stylus region of the first virtual plot, the controller 130 canadditionally or alternatively compare other features of the touch inputto additional virtual plots to confirm whether the discrete input is astylus-type input. In particular, the controller 130 can implementadditional virtual plots comparing other combinations of features of thediscrete input detected during a scan cycle. For example, if the totalarea and peak force of the discrete input fall within the possiblestylus region of the first virtual plot, the controller 130 canimplement similar methods and techniques to compare one or morecombinations of: total force, initial force, peak force, total area,directional velocity, directional acceleration, force velocity, contactdynamics (e.g., changes in size of the input area), deviation from anellipse, asymmetry around a force peak, etc. to corresponding virtualplots (or like virtual models) to label the discrete input as one of adefinitively a stylus, possibly a stylus, or definitively a finger,palm, or knuckle. The controller 130 can repeat this process until adefinite determination is reached for the input area, and the controller130 can label the discrete input accordingly. The controller 130 canthus characterize a discrete input on the touch sensor surface 122 basedon a prioritized set of features extracted from data collected duringthe corresponding scan cycle for “borderline” cases in which a singleprimary feature set (e.g., area versus peak force) of the input returnsan indefinite result.

The controller 130 can also: track a discrete input across a sequence ofscan cycles; confirm that the discrete input is a stylus only after theinput area is labeled as definitively a stylus (i.e., contains featuresthat fall within a definite stylus region of a virtual plot) at least afirst threshold number of times (e.g., ten times) before the input areais labeled as definitively not a stylus (i.e., contains features thatfall within a definite finger, palm, or knuckle region of the virtualplot) a second number of times (e.g., five times) over the sequence ofscan cycles; and retroactively label the discrete input—tracked acrossthe sequence of scan cycles—as a stylus-type input in each correspondingtouch image accordingly. Similarly, the controller 130 can: track adiscrete input across a sequence of scan cycles; confirm that thediscrete input is a not stylus only after the input area is labeled asdefinitively not a stylus at least a threshold number of times (e.g.,five times); and retroactively label the discrete input—tracked acrossthe sequence of scan cycles—as not a stylus-type input (or as a finger-,palm-, or knuckle-type input) in each corresponding touch imageaccordingly.

For example, the controller 130 can, at a first time, detect a firstforce input with force values exceeding a force threshold coincident afirst location in a first force image corresponding to a first subset ofsense electrodes. At a second time succeeding the first time (e.g., 0.1seconds later), the controller 130 can scan the array of senseelectrodes and generate a second force image. The controller 130 canthen detect a second force input with force values exceeding the forcethreshold coincident a second location in the second force imagecorresponding to a second subset of sense electrodes remote from (i.e.,offset from) the first subset of sense electrodes. In response to theratio of an input area to a force magnitude of the second force inputremaining approximately equal to the ratio of an input area to a forcemagnitude of the first force input, the controller 130 can classify thefirst force input and the second force input as originating from thesame input body (i.e., a stylus or non-stylus) and assign to the secondforce input a type corresponding to the type of the first force input.Thus, for a stylus type first force input, the controller 130 can assigna stylus type to the second force input. Likewise, for a non-stylusfirst force input, the controller 130 can assign a non-stylus type tothe second force input.

The controller 130 can also implement pattern recognition to label acluster of (discrete or overlapping) inputs as a palm and/or knuckle andto label a single discrete input offset from the cluster of inputs as astylus, such as if the discrete input is to the left of the cluster ofinputs if the user is right-handed or to the right and down from thecluster of inputs if the user is left-handed. The controller 130 canalso implement the classification methods described above throughmachine-learning or neural-network based classification systems such aslinear classifiers, support vector machines, kernel estimation(k-nearest neighbor), decision trees, random forests, neural networks,and/or deep learning, etc.

6.5 Inactive Pixels

In one variation in which the touch sensor 110 includes inactive senseelectrodes (i.e., sense electrodes not read by the controller 130)interposed between adjacent active sense electrodes, as described inU.S. patent application Ser. No. 14/499,001, a change in contactresistance of the resistive layer 116 over one inactive pixel map canaffect the contact resistance signal output by an adjacent active pixel.For example, in this variation, the touch sensor no can include a gridarray of active and inactive sense electrodes at a sense electrode pitchof one millimeter with active pixels arranged at an active senseelectrode pitch of two millimeters. The controller 130 can thereforeapply an active-inactive sense electrode coupling model to normalize (or“correct”) the contact resistance value (representative of the appliedforce) read from the active sensor and to interpolate a contactresistance value (or a force magnitude) for the inactive pixel. Inparticular, the controller 130 can “redistribute” a total applied forcedetected by the active pixel to one or more (e.g., four) adjacentinactive sense electrodes based on the original force value calculatedfor the active sense electrode during the scan cycle. The controller 130can then implement the foregoing methods and techniques to transformthese corrected and interpolated force magnitude values into a 3D forcesurface mesh for one scan cycle and to characterize inputs detectedwithin discrete regions within the 3D force surface as a stylus inputtype or non-stylus (e.g., a finger or a palm) input type, as shown inFIG. 1.

In another variation in which a (light) input on the touch sensorsurface 122 yields a measurable change in the output of a singleparticular sense electrode only, the controller 130 can determine thatthe total force magnitude of this force is less than a known thresholdmagnitude force for which a measurable force is communicated into two ormore sense electrodes. In this variation, the controller 130 can alsodetermine that the center of the force area applied to the touch sensorsurface 122 must fall within a region of the touch sensor 110 bounded bya perimeter half the distance from the particular sense electrode toadjacent sense electrodes. The controller 130 can thus characterize theinput object as “sharp” (e.g., as a stylus) and interpolate a positionand a force magnitude of this (light) input based on: a predefinedmaximum possible force input magnitude known to trigger only one senseelectrode; a boundary around the sense electrode in which the centroidof the applied force may occur; the output of the particular senseelectrode; and a ratio or model of force spreading across the resistivelayer 116 from one sense electrode to an adjacent sense electrode. Inthis variation, the controller 130 can combine the foregoing methods todetect and distinguish both light and heavier inputs by stylus andfingers on the touch sensor surface 122.

6.6 Resolution

As described above, the controller 130 can implement Blocks of themethod S100 to record an initial scan at a first time of the array ofsense electrodes at a first resolution (e.g., half of the naturalresolution of the array of sense electrodes). At a second timesucceeding the first time (e.g., 1 millisecond after the first time),the controller 130 can scan a subset of the array of sense electrodes ata second resolution (e.g., the natural resolution) greater than thefirst resolution to generate the second force image in Block S122.Generally, the controller 130 can be configured to scan the array ofsense electrodes at a lower resolution until an indefinite input isdetected and locally increase resolution around the indefinite input tofacilitate classification of the indefinite input as one of the stylusand non-stylus input types.

In particular, the controller 130 can scan, at a first resolution asubset of rows and a subset of columns of the array of sense electrodes114 to generate the first force image as shown in FIGS. 10A and 10B. Forexample, the controller 130 can scan every second row and every secondcolumn of the array of sense electrodes 114 to generate the first forceimage. The controller 130 can scan at the first resolution until thecontroller detects an input, such as an indefinite input, within a forceimage.

In response to detecting an indefinite input—an input with a forcemagnitude to area ratio remaining below the threshold ratio and/or aninput with a geometry dimension remaining below a threshold geometrydimension, the controller 130 can then scan a subset of the array ofsense electrodes 114—such as sense electrodes coincident the first forceinput, within the contiguous boundary, within a threshold distance ofoffset and outside the contiguous boundary, etc.—to generate a secondforce image. In particular, the controller 130 can increase a scanresolution proximal (or coincident) the first force input and/or acrossthe entire array of sense electrodes 114 by scanning more rows and morecolumns of the array of sense electrodes than the controller 130 scannedto generate the first force image. For example, in response to detectinga force input characterized by an ellipse with a major axis of a lengthexceeding a predefined threshold length (e.g., 0.75 cm), the controller130 can characterize the force input as indefinite and rescan senseelectrodes of the array of sense electrodes coincident (i.e.,encompassed by) the ellipse at a higher resolution to generate a secondforce image, thereby improving accuracy of force magnitude and contactarea of the force input in the second force image.

Furthermore, the controller 130 can additionally or alternatively read aset of raw force values from rows and columns of sense electrodes at thefirst resolution; interpolate between force values in the set of rawforce values to generate a set of interpolated force values; and compilethe set of raw force values and the set of interpolated force valuesinto the second force image. Thus, as shown in FIGS. 10A and 10B, thecontroller 130 can upsample an existing force image to a higherresolution to improve accuracy of force magnitudes (e.g., peak force)and locations of inputs within a force image. In particular, thecontroller 130 can transform a force image, such as the second forceimage, by interpolating force values between rows and columns of thesecond force image, the virtual image characterized by a resolutiongreater than the second resolution at which the second force image wasgenerated. Generally, in this variation, the controller 130 can beconfigured to interpolate between force values detected by senseelectrodes in the array of sense electrodes to improve accuracy of forcemagnitudes (e.g., peak force) coincident an input. For example, amaximum force value can occur between two rows of sense electrodes. Byinterpolating force values, the controller 130 can approximate anintermediate force value between the two rows of sense electrodes. Thus,the controller 130 can calculate the force magnitude for the force inputdefined by a maximum force value within the force image. Similarly, thecontroller 130 can interpret a contiguous cluster of force values, inthe set of raw force values and the set of interpolated force values,exceeding a force threshold as the second force input to calculate ageometry dimension (e.g., an area, ellipse, major axis, etc.) within theforce image to reduce error of the geometry dimension by increasingresolution of data sampled from the array of sense electrodes.

However, in one variation of the method S100, the controller 130 canmaintain a fixed resolution in response to detecting an indefinite inputtype. In particular, the controller 130 can: at a first time, scan anarray of sense electrodes at a first resolution to generate a firstforce image; detect a first force input in the first force image; inresponse to a first geometry dimension of the first force inputexceeding a first threshold, characterize the first force input as anon-stylus input type; in response to the first geometry dimension ofthe first force input remaining below the first threshold; in responseto a ratio of a force magnitude of the first force input to a secondgeometry dimension of the first force input exceeding a secondthreshold, characterize the first force input as a stylus input type; inresponse to the ratio falling below the second threshold, characterizethe first force input as a non-stylus input type; and output, to acomputing device coupled to the array of sense electrodes, a locationand a type of the first force input.

However, the controller 130 can scan sense electrodes or a subset ofsense electrodes in the array of sense electrodes at any otherresolution in response to any other input type and/or trigger.Alternatively, the controller, 130, can scan all sensor or a subset ofsense electrodes at the natural resolution of the touch sensor bydefault.

6.6 Real-Time and Asynchronous Input Type Identification

The controller 130 can execute the foregoing methods and techniquesfollowing each scan cycle and can output one touch image—includinglabeled input regions—per scan cycle. In particular, controller 130 canexecute the foregoing methods and techniques in real-time duringoperation of the system, such as to output touch images—representinglabeled inputs on the touch sensor surface 122—that can be handed by aconnected computing device to update a graphical user interface inreal-time. Alternatively, the controller 130 can execute the foregoingmethods and techniques asynchronously, such as to post-process penstrokes applied to a piece of paper placed over the touch sensor surface122 into a labeled sequence of touch images that can be replayeddigitally by a computing device to digitally recreate content drawnmanually on the paper in real space. For example, the controller 130 canexecute the foregoing methods and techniques to correct, update, and/oramend input types previously output by the controller 130 in response todetecting a definite input type post de facto.

For example, the controller 130 can scan the array of sense electrodesat a first resolution to generate a first force image of the array ofsense electrodes at a first time and characterize a first force inputdetected in the first force image as an indefinite input. At a secondtime following the first time, the controller 130 can scan the array ofsense electrodes 114 at the first resolution to generate a third forceimage. The controller 130 can detect the first force input relocatingfrom a first location to a second location across the array of senseelectrodes within the third force image. In response to a geometrydimension of the first force input in the second location exceeding thethreshold, the controller 130 can characterize the first force input asa (definite) non-stylus input type. However, in response to the geometrydimension of the first force input remaining below the threshold, thecontroller can again scan a subset of the array of sense electrodes at asecond resolution greater than the first resolution to generate a fourthforce image. In response to a type of the first force input in the firstforce image differing from a type of the first force input in the thirdforce image, the controller 130 can (retroactively) update a type of thefirst force input in the first force image differing from a type of thefirst force input in the third force image.

For the system that executes the foregoing methods and techniques inreal-time, upon identification of a force input on the touch sensorsurface 122 labeled as “possibly a stylus,” the system can also show ahovering cursor at a location on a connected display corresponding tothe location of the input on the touch sensor surface 122. As additionalforce is applied to the touch sensor surface 122, the system can confirmthe input as a stylus and then update the state of the cursor shown onthe display from a hovering cursor to a cursor that is actively drawingaccording to motion of the input across the touch sensor surface 122.Thus, the presence of the indefinite state can be hidden from the useror exposed as a “feature” rather than a limitation to aid the user inorienting the stylus on the touch sensor surface 122 (or on the displayarranged over the touch sensor surface 122) screen before beginning todraw the stylus across the touch sensor surface 122.

For example, the controller 130 can, in response to a ratio of a forcemagnitude of a force input to an input area of the force input fallingwithin a window less than a threshold ratio, characterize the forceinput as a hover input type.

Then the controller 130 can output a cursor location and a specificationof the first force input as a hover input type in response to the secondforce magnitude exceeding a force threshold and remaining below anintentional input threshold. However, in response to the ratio fallingbelow the window, such that the ratio of the input is well below thethreshold ratio, the controller 130 can characterize the force input asa (definite) non-stylus input type.

However, the controller can implement the foregoing methods andtechniques to asynchronously update (or amend) input typeclassifications in any other way.

7. Multi-Touch

Once a touch image is generated and labeled, the controller 130 (or acomputing device coupled to the system and receiving touch images fromthe controller 130) can respond to inputs represented in the touchimage, such as by manipulating a cursor, entering a keystroke, orexecuting a stylus vector.

In instances in which a touch image includes representations of multipleinputs of two or more distinct types, the controller 130 (or theconnected computing device) can selectively handle these inputs ofdifferent types. For example, if both an input area labeled as a stylusinput and a large input area labeled as a finger (which may correspondto a palm input) (or an input area labeled directly as a palm) arecontained within the touch image with their centroids (or locations ofpeak force) within a threshold distance from each other (e.g., threeinches), the controller 130 can reject the large finger (or palm) inputand instead respond to the stylus input only. (Alternatively, thecontroller 130 can strip the large finger input from the touch image.)The controller 130 can also track such a stylus input and large finger(or palm) input over time (i.e., across a sequence of touch images), andcan maintain rejection of this large finger input in subsequent touchimages following removal of the stylus from the touch sensor surface 122indicated in a touch image, such as for a sequence of touch imagesgenerated over a period of two seconds following detected release of thestylus from the touch sensor no input in order to implement hysteresisand to limit rapid reprioritization of stylus and large finger (or palm)inputs while a user is drawing or writing on the touch sensor surface122 with the stylus.

In another example, if a large finger (or palm) input is represented ina touch image, the controller 130 can prioritize scanning of a set ofsense electrodes within and around the corresponding touch area (e.g.,within two inches of the perimeter of the detected touch area) insubsequent scan cycles. In this example, the controller 130 canselectively increase the scan rate of this set of sense electrodes(e.g., to a rate of 250 Hz) and/or reduce the scan rate of other senseelectrodes in the touch sensor 110 (e.g., to 60 Hz) in order to maintainsensitivity to a possible stylus input near the large finger (or palm)input while reducing power consumption and processing load needed toscan other sense electrodes in the touch sensor.

However, the controller 130 (or a computing device connected to thesystem) can handle touch images containing object type labels in anyother way.

7.1 Distinguishing Classes of Objects

The systems and methods described herein can more generally beimplemented to distinguish two or more classes of objects on the touchsensor surface 122 that vary in terms of sharpness of their pressuredistributions. For example, the system can distinguish 1) a finger froma palm, 2) a stylus from a knuckle, 3) a finger from a knuckle, 4) anail from a finger, 5) a stylus from a finger and a palm 6) a stylusfrom a knuckle, a finger, and a palm, and/or 7) a nail from a knuckle, afinger, and a palm, etc. In an industrial sensing application, thesystem can detect particles caught below a smooth surface ornon-uniformity causing a sharp pressure point. In a roboticsapplication, the system can be used to protect a robot from injury bygrasping or pushing against sharp or pointed objects or to detect acondition in which the robot may be in danger of being damaged by asharp or pointed object. In a medical application, the system can beused to detect a pressure point on a bed or other surface in contactwith a patient's body that may cause injury to the patient over time.

Although the foregoing system is described herein as implementingresistive approaches to measure pressure distributions across a touchsensor surface, the system can implement similar methods and techniquesto measure pressure distributions across a touch sensor surface throughcapacitive, optical, MEMS, and/or other types of force sensing arrays.The system can also incorporate other force-distribution layers andemploy other methods and algorithms to distinguish a stylus from afinger and/or objects in contact with a touch sensor surface.

7.2 Proximal Inputs

In one implementation, the controller 130 can generate a first forceimage; detect and characterize a first force input, in the first forceimage, as a (definite) stylus or non-stylus input type; detect, in thefirst force image, a second force input within a threshold distance ofthe first force input; and, characterize the second force input as anon-stylus input type. Generally, the controller 130 can define athreshold boundary surrounding a definite input (e.g., a palm inputand/or a stylus input) and reject additional inputs within the thresholdboundary as aberrant and/or non-stylus inputs.

For example, the controller 130 can detect a first input distributedover a relatively large area of the touch sensor surface in a firstforce image. In response to a geometry dimension of the first inputexceeding—by a large margin—a threshold dimension roughly the size of astylus input, the controller 130 can characterize the first input as anon-stylus (and/or palm) input type. Then the controller 130 can definea keep-out zone surrounding the first input's large area in the firstforce image and within a threshold distance of a contiguous boundarydefining the large area of the first input. In response to detectingadditional inputs coincident the keep-out zone and/or coincident thefirst force input, the controller 130 can characterize the additionalinputs as non-stylus inputs. Thus, the controller 130 can characterizethe additional inputs as non-stylus inputs on account of proximity tothe first force input and low probability (e.g., determined from aconfidence score) that the additional inputs result from contact of amultiple (additional) styluses within a predefined area of the stylusinput.

8. Input Tracking

The controller 130 can track inputs across the array of sense electrodes114 over a sequence of scan cycles and persist the stylus label or thenon-stylus label throughout subsequent corresponding touch images. Inparticular, in response to detecting a set of similar inputs definingsimilar geometries or geometry dimensions, force-to-area ratios, and/orother metrics in sequential force images, the controller 130 canmaintain a first label characterized for a first input in the set ofsimilar inputs to all inputs in the set of similar inputs.

For example, the controller 130 can detect relocation of a first forceinput from a first location to a second location adjacent the firstlocation in response to detecting a first force input in a first forceimage at a first time. The first force input can define a first ratio ofa force magnitude of the first force input—calculated as describedabove—to a geometry dimension (e.g., an area). At a second timesucceeding the first time, the controller 130 can detect a second forceinput in a second force image proximal a location of the first forceinput in the first force image. The second force input can define asecond ratio of a second force magnitude of the second force input to asecond geometry dimension (e.g., an area) of the second force input. Inresponse to the first ratio remaining approximately equal to the secondratio, the controller 130 can characterize (or label) the second forceinput to align with a label (or type) of the first force input. Thus,the controller 130 can label a second force input as a stylus type inresponse to detecting a first force input of a stylus type. Likewise,the controller 130 can label a first force input as a non-stylus type inresponse to detecting a first force input of a non-stylus type.

9. Handwriting Posture

In one variation shown in FIG. 8, the controller 130 can implementmethods and techniques of method S100 to determine a handwriting postureof a user and, based on the handwriting posture, characterize inputs asstylus and non-stylus input types. Generally, the controller 130 canlearn input patterns and efficiently characterize input types accordingto learned input pattern labels.

For example, the controller 130 can, at a first time, in response to aforce-to-area remaining below the threshold magnitude, characterize afirst force input, in a first force image, as a palm input type; detect,in the first force image, a second force input offset from the firstforce input; and in response to a second force-to-area ratio of thesecond force input exceeding the second threshold, characterize thesecond force input as the stylus input type. The controller 130 can thendefine a virtual vector from the first force input to the second forceinput, the virtual vector representing a handwriting posture of a user.Over a time window (e.g., 5 minutes) succeeding the first time, thecontroller 130 can scan the array of sense electrodes and project thevirtual vector onto force images generated by the controller 130 duringthe time window. In response to detecting a palm input in a force imagegenerated during the time window, the controller 130 can project thevirtual vector onto the force image such that an origin of the virtualvector aligns with the palm input (e.g., a centroid of the palm input).The controller 130 can detect a set of additional force inputs (e.g., asecond and a third force input) in the force image. The controller 130can then project (i.e., orthogonally) the second and third force inputsonto the virtual vector. The controller 130 can then characterize eachof the second and third force inputs based on a distance of the secondand third inputs from the palm input. In response to the second forceinput falling further away from the palm input on the virtual vectorthan the third force input, the controller 130 can characterize thesecond force input as a stylus input type and the third force input as anon-stylus input type and/or indefinite input. Thus, the controller 130can efficiently label inputs by projecting inputs onto a virtual(hand-writing posture) vector and characterize a furthest of inputsdetected within a force image as a stylus input as shown in FIG. 8.

However, the controller 130 can implement any other method and/ortechnique to label and characterize inputs in any other suitable way.

10. Glove Input Mode

As shown in FIG. 9, a method S200 for detecting and characterizinginputs on a touch sensor surface includes: in a first mode, at a firsttime, scanning an array of sense electrodes, arranged under the touchsensor surface, to generate a first force image in Block S210;interpreting a first force value in the first force image that exceeds afirst force threshold as a first force input at a first location on thetouch sensor surface in Block S212; interpreting a second force value inthe first force image that exceeds the first force threshold as a secondforce input at a second location on the touch sensor surface in BlockS214; in response to the second location falling within a thresholddistance of the first location, entering a second mode in Block S220; inthe second mode: at a second time succeeding the first time, scanningthe array of sense electrodes to generate a second force image in BlockS222; interpreting a third force value in the second force image thatexceeds a second force threshold greater than the first force thresholdas a third force input at a third location on the touch sensor surfacein Block S224; interpreting a fourth force value in the second forceimage that exceeds the second force threshold as a fourth force input ata fourth location on the touch sensor surface in Block S226; in responseto the third location falling within a threshold distance of the firstlocation, merging the third force input and the fourth force input intoa singular input defining a singular input area encompassing the thirdforce input and the fourth force input and characterized by a singularinput force magnitude representing a combination of the third forcevalue and the fourth force value in Block S228; and outputting, to acomputing device connected to the input device, the singular input areaand the singular input force magnitude of the singular input in BlockS230.

Generally, the controller 130 can execute Blocks of the method S200 toinitiate a glove-input detection mode in which the controller 130 caninterpret close (i.e., proximal) clusters of inputs within a force imageas a singular input by a gloved finger. Gloves, such as loose-fittinggloves, may tend to bunch up around a tip of a finger and, thus, when auser wearing a glove contacts a touch sensor surface to apply an input,the loose-fitting glove may intersect with the touch sensor surface atmultiple discrete points. Some gloves may also have seams or stitchingaround the fingertip areas which may also create contact on the sensorsurface at multiple discrete points. For example, a user may wear aheavy work-glove while interacting with a touchpad integrated into acomputing device. Thus, the controller 130 can detect multiple discreteinputs within a force image captured at a time corresponding to theglove's input on the touch sensor surface. To facilitate accuratedetection and location of inputs to a touch sensor surface in surgical,military, outdoor, and/or any other application in which a user may weara glove or apply inputs with any other uneven (e.g., wrinkled,non-planar, or lumpy) input utensil, the controller 130 can aggregateclosely proximal inputs as a singular input rather than interpretingeach discrete input as a distinct input.

In particular, the controller 130 can, as described below, flag clustersof inputs within a certain proximity as possible glove inputs, enter aglove-input mode, increase a force threshold of sense electrodes of thearray of sense electrodes of the touch sensor, and, in response todetecting one or more force inputs exceeding the (new) force threshold,characterize the force inputs as a gloved-finger input type.

10.1 Switching Modes

As shown in FIG. 9, Blocks of the method S200 recite: in a first mode,at a first time, scanning an array of sense electrodes, arranged underthe touch sensor surface, to generate a first force image in Block S210;detecting, in the first force image, a first force input at a firstlocation on the touch sensor surface, the first force input of a firstforce value exceeding a first force threshold in Block S212; detecting,in the first force image, a second force input at a second location onthe touch sensor surface, the second force input of a second force valueexceeding the first force threshold in Block S214; in response to thesecond location falling within a threshold distance of the firstlocation, entering a second mode in Block S220. Generally, thecontroller 130 can execute Blocks S210, S212, and S220 of the methodS200 to trigger transition from a first (default) mode described aboveinto a second (glove-input detection) mode in response to detectingclosely clustered inputs within a force image. Thus, the controller 130can implement Blocks of the method S100 to distinguish between closelyproximal yet distinct inputs (e.g., from two adjacent fingers contactingthe touch sensor surface) and proximal detected inputs resulting frommultiple discrete contact points of a glove with the touch sensorsurface.

In one implementation, the controller 130 can initiate the second modein response to detecting two or more inputs within a threshold distanceof each other. In this implementation, the controller 130 can associateclosely proximal inputs as results from contact of a single input objectat multiple discrete but closely clustered input locations along thetouch sensor surface. In this implementation, the controller 130 candefine the threshold distance such that the controller 130 candifferentiate between closely proximal inputs resulting from contact ofmultiple discrete input objects (e.g., two fingers) and closely proximalinputs resulting from a single input object (e.g., a loose-fittinggloved finger) contacting the touch sensor surface at multiple discretecontact points. For example, the controller 130 can define the thresholddistance less than a minimum distance between nearest common contactpoints of two adjacent fingers on the touch sensor surface whencontacting the touch sensor surface.

For example, in the first mode, the controller 130 can output, to thecomputing device, a first location of a first force input and a secondlocation of a second force input; and continue operation in the firstmode in response to a force magnitude of the first force input to thefirst geometry dimension of the first force input remaining below athreshold ratio and in response to a ratio of a force magnitude of thesecond force input to a second geometry dimension of the second forceinput remaining below the threshold ratio. Thus, the controller 130 canmaintain the first mode in response to detecting low-pressure (or force)and proximal inputs, such as a light palm input contacting the touchsensor surface at multiple discrete points. However, the controller 130can enter the second mode in response to the ratio of the forcemagnitude of the first force input to the first geometry dimensionexceeding a threshold ratio; and the second location falling within thethreshold distance of the first location. Thus, if at least one inputdetected within a threshold distance of an other input appears to be astylus, finger, or other localized input with a high force-to-arearatio, the controller 130 can enter the second (glove-input detection)mode.

In another implementation, as described above, the controller 130 caninitiate the second mode in response to detecting discrete inputs ofsimilar and/or distinct input types into a singular (comprehensive)input within a threshold distance of each other. In particular, thecontroller 130 can selectively merge discrete inputs into the singularinput based on compatibility—or a complementary relationship—of inputtypes detected within a force image. Thus, the controller 130 cancharacterize a set of inputs within a particular force image as a stylusinput type or a non-stylus type based on a geometry dimension of eachinput in the set of inputs and/or a force-to-area ratio calculated foreach input. Based on proximity and geometrical characteristics of eachinput, the controller 130 can then selectively determine whether the setof inputs originate from discrete (intentional) contact points ofmultiple input objects (e.g., fingers, styluses, and/or palms) on thetouch sensor surface or from a singular input object with multiplediscrete contact points.

For example, in response to detecting a first force input of a stylusinput type within a threshold distance (e.g., less than a minimumdistance between nearest common contact points of two adjacent fingerson the touch sensor surfaces) of a second force input of a stylus inputtype in a force image, the controller 130 can initiate the second mode.In response to proximity of the first and second force inputs andlocalized nature of the stylus input type, the controller 130 canidentify the first and second force inputs of a stylus type as multiplecontacts by a singular object, such as a gloved finger, with the touchsensor surface. Thus, as described below, the controller 130 can mergethe first and second force inputs into a singular input in the secondmode. In this example, the controller 130 can also, in response todetecting the first force input of a stylus input type within athreshold distance of the second force input of a stylus input type in aforce image, identify the first and second force inputs as originatingfrom multiple distinct objects contacting the touch sensor surface and,thus, remaining in the first (default) mode as described above.Likewise, in response to detecting a first force input of a non-stylusinput type within a threshold distance of a second force input of anon-stylus input type in a force image, the controller 130 cancharacterize the first and second force inputs as distinct inputs andinitiate the default mode described below.

In another implementation, in response to two (or more) inputs fallingwithin a threshold distance of each other and exhibiting a similar inputtype (e.g., a non-finger input type), the controller 130 cancharacterize the inputs as distinct inputs, and remain in a first(default) mode as described below. However, in response to detectingmultiple proximal inputs exhibiting dissimilar input types, thecontroller 130 can initiate the second mode. For example, in response toa ratio of a force magnitude of a first force input to a first geometrydimension of the first force input remaining below a threshold, thecontroller 130 can characterize the first force input as a non-palmarinput type (e.g., a finger and/or a stylus input); in response to aratio of a force magnitude of a second force input to a second geometrydimension of the second force input remaining below the threshold, thecontroller 130 can characterize the second force input as a non-palmarinput type; and, in response to characterizing the first force input andthe second force input as non-palmar input types, the controller 130 caninitiate the second mode.

However, the controller 130 can initiate the second mode in response toany other trigger and/or combination of input types of proximal forceinputs.

10.2 Merging Multiple Inputs

As shown in FIG. 9, Blocks of the method S200 recite: in response to thethird location falling within a threshold distance of the firstlocation, merging the third force input and the fourth force input intoa singular input defining a singular input area encompassing the thirdforce input and the fourth force input and characterized by a singularinput force magnitude representing a combination of force values of thethird force input and the fourth force input in Block S228. Generally,the controller 130 can execute Blocks S228 to merge clusters of closelyproximal inputs into a singular input upon entering a glove-inputdetection mode.

In one implementation, the controller 130 can merge a first force inputwithin a threshold distance (e.g., 1 millimeter) of a second force inputin a force image into a singular input and calculate an input area ofthe singular input within a contiguous boundary encompassing both thefirst force input and the second force input. In particular, thecontroller 130 can define the contiguous boundary that surrounds forcevalues, defined in the first force image, exceeding the first forcethreshold, thereby encompassing the first force input and the secondforce input. From the contiguous boundary, the controller 130 cancalculate an input area encompassed by (i.e., within) the contiguousboundary.

As described above, the controller 130 can calculate an input area froma best-fit geometry overlaid on and encompassing the first and secondforce inputs. In particular, the controller 130 can define a best-fitgeometry, such as an ellipse, circle, or polygon, to (approximately)encompass all or a majority of both the first and second force inputs inthe force image. The controller 130 can then calculate an area of thebest-fit geometry and assign the area of the best-fit geometry to theinput area.

Additionally or alternatively, the controller 130 can calculate a forcemagnitude of the singular input based force values of the first andsecond force inputs. In one implementation, the controller 130 candefine a force magnitude of the singular input based on a linearcombination of force values detected coincident the first and secondforce inputs in the force image. In another implementation, thecontroller 130 can define the force magnitude of the singular input as apeak force detected in (both) of the first and second force inputs.Alternatively, the controller 130 can calculate the force magnitude ofthe singular input as a weighted combination of a first force magnitudeof the first force input weighted by an area of the first force inputand the second force magnitude of the second force input weighted by anarea of the second force input.

Alternatively, the controller 130 can interpolate a force magnitudebased on a gradient of force values detected coincident the first andsecond force inputs within the force image. For example, the controller130 can detect that the first force input defines a first gradient offorce values increasing in a direction toward the second force input.The second force input can define a second gradient of force values thatdecrease from an edge of the second force input adjacent the first forceinput in a direction distal from the first force input. Based on thefirst and second gradients, the controller 130 can calculate (orproject) intermediate force values between the first and second forceinputs by projecting trends of each of the first and second gradientsonto intermediate pixels of the force image between the first and secondinputs. For example, the controller 130 can define a curve (or trendline) of force values across intermediate pixels between the first andsecond inputs and coinciding with the first gradient and/or the secondgradient. From the curve, the controller 130 can project force valuesbetween the first and second force inputs and, thus, calculate anoverall force magnitude for the singular input (e.g., as a linearcombination of force values of the first and second force inputs and theprojected force values between the first and second inputs or as a peakforce of the first and second inputs and the projected force valuesbetween the first and second inputs).

The second force input defines a second gradient of force values thatincrease from an edge of the second force input adjacent the first forceinput and decrease toward an edge of the second force input opposite thefirst force input. Thus, the controller 130 can detect that a peak forceof the input likely occurs coincident the second force input.

In one variation, the controller 130 can interpret a contiguous clusterof force values exceeding the force threshold as force inputs and defineinput areas bounding the contiguous clusters of force values. Therefore,the controller 130 can calculating the singular input force magnitudebased on a combination of the third force magnitude weighted by thethird force input area and the fourth force magnitude weighted by thefourth force input area.

10.3 Modifying Sensor Force Thresholds

As shown in FIG. 9, Blocks of the method S200 recite: in a first mode,at a first time, scanning an array of sense electrodes, arranged underthe touch sensor surface, to generate a first force image in Block S210;detecting, in the first force image, a first force input at a firstlocation on the touch sensor surface, the first force input of a firstforce value exceeding a first force threshold in Block S212; detecting,in the first force image, a second force input at a second location onthe touch sensor surface, the second force input of a second force valueexceeding the first force threshold in Block S214; in response to thesecond location falling within a threshold distance of the firstlocation, entering a second mode in Block S220; in the second mode: at asecond time succeeding the first time, scanning the array of senseelectrodes to generate a second force image in Block S222; detecting, inthe second force image, a third force input at a third location on thetouch sensor surface, the third force input of a third force valueexceeding a second force threshold greater than the first forcethreshold in Block S224; detecting, in the second force image, a fourthforce input at a fourth location on the touch sensor surface, the fourthforce input of a fourth force value exceeding the second force thresholdin Block S226. Generally, the controller 130 can execute Blocks S210,S212, S214, S216, S220, S222, and S226 to, in the glove-input detectionmode, increase a force threshold at which the controller 130 identifiesand characterizes inputs within a force image, thereby reducingprobability of erroneously reading and classifying aberrant, low forceinputs.

In one implementation, the controller 130 can, following initiation ofthe glove-input detection mode, scan the array of sense electrodesand/or a subset of sense electrodes in the array of sense electrodes togenerate a force image and detect a force input in the force image inresponse to force values exceeding a particular threshold greater than aforce threshold implemented by the controller prior to initiation of theglove-input detection mode. The controller 130 can define a uniformforce threshold across all pixels within a force image. The controller130 can detect inputs based on detecting force values exceeding theuniform force threshold at particular pixels within the force image.Following initiation of the glove-input detection mode, the controller130 can increase the uniform force thresholds globally and apply theuniform force threshold across all pixels of the force image.

Alternatively, the controller 130 can define a gradient of forcethresholds across pixels within the force image. The controller 130 candetect inputs based on detecting force values exceeding a particularforce threshold defined by the gradient of force thresholds at aparticular pixel within the force image. Following initiation of theglove-input detection mode, the controller 130 can increase each forcethreshold in the gradient of force thresholds by either a uniform orvaried amount and apply the (updated) gradient of force thresholdsacross all pixels of the force image.

However, the controller 130 can decrease sensitivity of the touch sensorby any other means.

10.4 Input Types

As described above, the controller 130 can execute Blocks of the methodS200 to classify the singular input according to predefined input types,such as a finger input type and/or a non-finger input type in theglove-input detection mode. Generally, the controller 130 can define andassign input types to inputs based on geometry (e.g., a geometrydimension) of the singular input and/or a ratio of the force magnitudeto area of the singular input.

For example, in response to a ratio of the singular input forcemagnitude to a geometry dimension of the singular input exceeding athreshold magnitude, the controller 130 can characterize the singularinput as a finger (i.e., a gloved-finger) input type; and, in responseto the ratio remaining below the threshold magnitude, characterizing thesingular input as a non-finger input type. Thus, the controller 130 canoutput a location, force magnitude, and type of the singular input to acomputing device coupled to the array of sense electrodes.

Additionally or alternatively, the controller 130 can output, to thecomputing device, a cursor location and a specification of the singularinput as a hover input type in response to the singular input forcemagnitude exceeding the first force threshold and remaining below anintentional input threshold. Likewise, the controller 130 can output aspecification of the singular input as a definite input type (e.g.,stylus, non-stylus, finger, palm) in response to the singular inputforce magnitude exceeding the first force threshold and exceeding theintentional input threshold. Thus, the controller 130 can outputintentional inputs and reject aberrant and/or low threshold inputs.

10.5 Tracking

In one implementation, the controller can track motion of the singularinput, as described above, across a period of time in response todetecting discrete inputs of similar areas and/or a similar compositearea of the (calculated) singular input in successive force images. Forexample, at a third time succeeding the second time, the controller 130can scan the array of sense electrodes to generate a third force image.The controller can then detect relocation of the singular input to afifth location on the touch sensor surface in response to detecting afifth force input and a sixth force input in the third force image, aninput area encompassing the third location and the fourth locationwithin a threshold area of an area encompassing the first location andthe second location. In response to detecting relocation of the singularinput to the third location, the controller 130 can then output, to thecomputing device, the third location and force values of the singularinput in the third location.

10.6 Default Mode

As described above and shown in FIGS. 1 and 2, the controller 130 candynamically shift between the glove-input detection (or second) mode toa normal (or first) mode in response to detecting absence of a secondforce input within a threshold distance of a first force input in aparticular force image. Generally, the controller 130 can execute Blocksof the method S200 in a glove-input detection mode in response todetecting closely proximal inputs likely by a gloved-finger; and canexecute Block S100 in a first (default) mode in response to detectingdistributed inputs in a force image.

Thus, as described above, in response to detecting absence of a secondforce input within a threshold distance (e.g., 0.5 centimeters) of thefirst force input in a particular force image, the controller 130 cancontinue operation in the first mode. For example, the controller 130can, in response to a second location of the second input fallingoutside a threshold distance from a first location of a first input and,in response to a ratio of a first force magnitude of the first forceinput to a first geometry dimension of the first force input exceeding athreshold ratio, characterize the first force input as a stylus inputtype; and output to the computing device the first location of the firstforce input, the second location of the second force input, and aspecification of the first force input as a stylus input type.Furthermore, the controller 130 can, in response to a first geometrydimension of the first force input exceeding a first threshold,characterize the first force input as a non-stylus input type; inresponse to the first geometry dimension of the first force inputremaining below the first threshold: at a third time succeeding thefirst time, scan a subset of the array of sense electrodes at a secondresolution greater than the first resolution to generate a third forceimage, the subset of the array of sense electrodes coincident the firstforce input; detect a fourth force input in the second force imageproximal the first force input; and, in response to a ratio of a forcemagnitude of the fourth force input to a second geometry dimension ofthe fourth force input exceeding a second threshold, characterize thefirst force input as a stylus input type; and outputting, to thecomputing device coupled to the array of sense electrodes, a locationand a type of the first force input.

Additionally or alternatively, the controller 130 can intermittentlyswitch between the first (default) mode and the second (glove-inputdetection) mode. In particular, in response to detecting a first forceinput within a threshold distance of second force input in a forceimage, the controller 130 can initiate the second mode at a first timeand sustain the second mode for a time window (e.g., 1 second) followingthe first time. In response to expiration of the time window, thecontroller 130 can transition to the first mode and sustain the firstmode until the controller 130 again detects closely proximal forceinputs within a force image.

Alternatively, the controller 130 can initiate the second mode at afirst time and sustain the second mode indefinitely and/or until thecontroller 130 detects a trigger to initiate the first (default) mode.In particular, the controller 130 can initiate the second mode at afirst time in response to detecting a first force input within athreshold distance of a second force input and merge the first andsecond force inputs into a singular input. For an indefinite periodsucceeding the first time, the controller 130 can interpret force inputswithin the threshold distance as singular inputs. However, at a secondtime within the indefinite period, in response to detecting an isolatedinput falling outside of the threshold distance of a second input, thecontroller 130 can initiate the first (default) mode.

Furthermore, the controller 130 can initiate the first mode and/or thesecond mode substantially simultaneously across discrete subsets ofsense electrodes in the array of sense electrodes. For example, at afirst time, the controller 130 can initiate the first mode for a firstsubset of sense electrodes proximal a corner of the touch sensor surfacein response to detecting a stylus input in a first force image offsetfrom any other force input by more than the threshold distance andproximal a corner of the touch sensor surface. The controller 130 canalso initiate the second mode at the first time for a second subset ofsense electrodes proximal a center of the touch sensor surface inresponse to detecting a first force input within the threshold distanceof a second force input in the first force image and proximal a centerof the touch sensor surface.

The controller 130 can also switch from the second mode into the firstmode in response to detecting relocation of the first force input andthe second force input over a period of time to different locations atwhich a distance between the first and second force inputs exceeds thethreshold distance. In particular, the controller 130 can generate asecond force image; interpret a third force value in the second forceimage that exceeds the force threshold as a third force input at a thirdlocation on the touch sensor surface; interpret a fourth force value inthe second force image that exceeds the first force threshold as afourth force input at a fourth location on the touch sensor surface; andmatching the third force input to the first force input and the fourthforce input to the second force input. In response to the fourthlocation falling outside the threshold distance from the third location,the controller 130 can transition the system to the first mode and,thus, output to the computing device the third location of the thirdinput and the fourth location of the fourth input.

However, the controller 130 can selectively transition between modes inany other way in response to any other trigger and can define any otheradditional modes to aid classification of input types.

10.6 Modifying Resolution

As described above, one variation of the method S200 includes, in afirst mode: at a first time, scanning an array of sense electrodes,arranged under the touch sensor surface, at a first resolution togenerate a first force image; interpreting a first force value in thefirst force image that exceeds a first force threshold as a first forceinput at a first location on the touch sensor surface; interpreting asecond force value in the first force image that exceeds the first forcethreshold as a second force input at a second location on the touchsensor surface; in response to the second location falling within athreshold distance of the first location, entering a second mode; in thesecond mode: at a second time succeeding the first time, scanning thearray of sense electrodes at a second resolution greater than the firstresolution to generate a second force image; interpreting a third forcevalue in the second force image that exceeds a second force threshold asa third force input at a third location on the touch sensor surface;interpreting a fourth force value in the second force image that exceedsthe second force threshold as a fourth force input at a fourth locationon the touch sensor surface; in response to the third location fallingwithin a threshold distance of the first location, merging the thirdforce input and the fourth force input into a singular input defining asingular input area encompassing the third force input and the fourthforce input and characterized by a singular input force magnituderepresenting a combination of the third force value and the fourth forcevalue; and outputting, to a computing device connected to the inputdevice, the singular input area and the singular input force magnitudeof the singular input.

Generally, in this variation and as described above, the controller canmodify (or increase) a resolution of a scan of the array of senseelectrodes in response to detecting proximal inputs in order toaccurately calculate distances between discrete inputs and areas ofdiscrete input and determine relevancy of the first and second modes tosubsets of inputs within a force image.

Furthermore, as described above and shown in FIGS. 10A and 10B, thecontroller 130 can intermittently upsample resolution of a force imageto reduce error of calculated areas, distances, force magnitudes, etc.For example, the controller 130 can read a set of raw force values fromrows and columns of sense electrodes; interpolate between force valuesin the set of raw force values to generate a set of interpolated forcevalues; and compile the set of raw force values and the set ofinterpolated force values into the first force image. Then thecontroller can interpret a first contiguous cluster of force values, inthe set of raw force values and the set of interpolated force values,exceeding the first force threshold as the first force input andinterpret a second contiguous cluster of force values, in the set of rawforce values and the set of interpolated force values, exceeding thefirst force threshold as the second force input. Thus, the controllercan calculate an offset distance between a centroid of the firstcontiguous cluster and the centroid of the second contiguous cluster inthe first force image and, thus, enter the second mode in response tothe offset distance exceeding the threshold distance, entering thesecond mode.

However, the controller 130 can selectively modify touch sensorresolution and force thresholds in any other way to trigger the firstand second modes.

The systems and methods described herein can be embodied and/orimplemented at least in part as a machine configured to receive acomputer-readable medium storing computer-readable instructions. Theinstructions can be executed by computer-executable componentsintegrated with the application, applet, host, server, network, website,communication service, communication interface,hardware/firmware/software elements of a user computer or mobile device,wristband, smartphone, or any suitable combination thereof. Othersystems and methods of the embodiment can be embodied and/or implementedat least in part as a machine configured to receive a computer-readablemedium storing computer-readable instructions. The instructions can beexecuted by computer-executable components integrated bycomputer-executable components integrated with apparatuses and networksof the type described above. The computer-readable medium can be storedon any suitable computer readable media such as RAMs, ROMs, flashmemory, EEPROMs, optical devices (CD or DVD), hard drives, floppydrives, or any suitable device. The computer-executable component can bea processor but any suitable dedicated hardware device can(alternatively or additionally) execute the instructions.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the embodiments of the invention without departing fromthe scope of this invention as defined in the following claims.

We claim:
 1. A method for detecting and characterizing inputscomprising: during a first scan cycle: reading a first set of forcevalues from an array of sense electrodes supporting a touch sensorsurface; detecting a first input on the touch sensor surface;interpreting a first geometry dimension of the first input; interpretinga first force magnitude of the first input based on the first set offorce values; in response to the first geometry dimension of the firstinput remaining below a first threshold, and in response to a firstratio of the first force magnitude of the first input to the firstgeometry dimension of the first input exceeding a second threshold,characterizing the first input as a finger input type; and recording afirst location and a first input type of the first force input; during asecond scan cycle: reading a second set of force values from the arrayof sense electrodes; detecting a second input on the touch sensorsurface; interpreting a second geometry dimension of the second input;interpreting a second force magnitude of the second input based on thesecond set of force values; and in response to the second geometrydimension of the second input remaining below the first threshold, andin response to a second ratio of the second force magnitude of thesecond input to the second geometry dimension of the second inputfalling below the second threshold, characterizing the second input as anon-finger input type; and recording a second location and a secondinput type of the second input.
 2. The method of claim 1, furthercomprising, during a third scan cycle: reading a third set of forcevalues from the array of sense electrodes; detecting a third input onthe touch sensor surface; interpreting a third geometry dimension of thethird input; interpreting a third force magnitude of the third inputbased on the third set of force values; in response to the thirdgeometry dimension of the third input exceeding the first threshold,characterizing the third input as the non-finger input type; andrecording a third location and a third input type of the third forceinput.
 3. The method of claim 2: further comprising, during the thirdscan cycle: calculating a first best-fit boundary encompassing the thirdinput on the touch sensor surface; and extracting the third geometrydimension from the first best-fit boundary of the third input; whereinextracting the third geometry dimension from the first best-fit boundarycomprises extracting a first length of a major axis of the firstbest-fit boundary defining a first best-fit ellipse for the thirdgeometry dimension; and wherein characterizing the third input as thenon-finger input type in response to the third geometry dimension of thethird input exceeding the first threshold comprises characterizing thethird input as the non-finger input type in response to the firstgeometry dimension of the first best-fit ellipse exceeding the firstthreshold.
 4. The method of claim 2: further comprising extracting thethird geometry dimension of the third input representing a width of thethird input; and wherein characterizing the third force input as thenon-finger input type in response to the third geometry dimensionexceeding the first threshold comprises characterizing the third inputas a palm input type in response to the first geometry dimensionexceeding the first threshold.
 5. The method of claim 2, furthercomprising, in response to the third geometry dimension of the thirdinput remaining above the first threshold following the first scancycle, during a fourth scan cycle: reading a fourth set of force valuesfrom an array of sense electrodes; detecting a fourth input on the touchsensor surface proximal the third input; interpreting a fourth geometrydimension of the fourth input; interpreting a fourth force magnitude ofthe fourth input based on the fourth set of force values; and inresponse to the fourth geometry dimension of the fourth force inputexceeding a third threshold less than the first threshold,characterizing the fourth force input as a non-finger type.
 6. Themethod of claim 2, further comprising, during a fourth scan cycle,succeeding the third scan cycle: accessing the third location of thethird input; reading a fourth set of force values from an array of senseelectrodes; detecting a fourth input at a fourth location remote fromthe third location on the touch sensor surface; interpreting a fourthgeometry dimension of the fourth input; interpreting a fourth forcemagnitude of the fourth input based on the fourth set of force values;and response to the fourth geometry dimension of the fourth force inputfalling below a third threshold, characterizing the fourth force inputas a finger input type.
 7. The method of claim 1, further comprising,during a third scan cycle, succeeding the first scan cycle: accessingthe first location of the first input; reading a third set of forcevalues from the array of sense electrodes; detecting a third input at athird location proximal the first location on the touch sensor surface;interpreting a third force magnitude of the third input based on thethird set of force values; in response to a third ratio of the thirdforce magnitude of the third input to a third geometry dimension of thethird input exceeding the second threshold: characterizing the thirdinput as the finger input type; and in response to a first distancebetween the first input and the third input falling within a thresholddistance, confirming the first input as the finger input type.
 8. Themethod of claim 1, further comprising, during a third scan cycle,succeeding the first scan cycle: accessing the second location of thesecond input; reading a third set of force values from the array ofsense electrodes; detecting a third input at a third location proximalthe second location on the touch sensor surface; interpreting a thirdforce magnitude of the third input based on the third set of forcevalues; and in response to a third ratio of the third force magnitude ofthe third input to a third geometry dimension of the third input fallingbelow the second threshold: characterizing the third input as thenon-finger input type; and in response to a first distance between thesecond input and the third input falling within a threshold distance,confirming the second input as the non-finger input type.
 9. The methodof claim 1, wherein characterizing the first input as a finger inputtype further comprises: calculating a first score for the first geometrydimension based on a probability that the first geometry dimensionassociated with the first input represents the finger input type;calculating a first confidence score representing a combination of thefirst score and the first ratio; in response to the first confidencescore exceeding a high score threshold, characterizing the first forceinput as the finger input type; and in response to the first confidencescore exceeding a low score threshold and falling below the high scorethreshold, characterizing the first force input as a low confidencefinger input type.
 10. The method of claim 9, further comprising, inresponse to characterizing the first force input as the low confidencefinger input type: detecting a third input proximal the first input;calculating a second score for a third geometry dimension of the thirdforce input; calculating a second confidence score representing acombination of the third score and a third ratio of the third forcemagnitude of the third input to the third geometry dimension of thethird force; in response to the second confidence score exceeding thehigh score threshold, characterizing the first input and the third inputas the finger input type; and in response to the second confidence scorefalling below the low score threshold, characterizing the first forceinput and the third force input as the non-finger input type.
 11. Themethod of claim 1, further comprising, during a third scan cycle,succeeding the first scan cycle: accessing the first location of thefirst input; reading a third set of force values from the array of senseelectrodes; detecting a third input at a third location proximal thefirst location on the touch sensor surface; interpreting a thirdgeometry dimension of the third input; interpreting a third forcemagnitude of the third input based on the third set of force values; andin response to a first distance between the first location and the thirdlocation exceeding a threshold distance, characterizing the third inputas the non-finger input type.
 12. The method of claim 1: furthercomprising, during the first scan cycle: scanning the array of senseelectrodes at a first resolution to generate the first set of forcevalues from rows and columns of sense electrodes; interpolating betweenforce values in the first set of force values to generate a first set ofinterpolated force values; compiling the first set of force values andthe set of interpolated force values to generate a first force image;defining a contiguous boundary encompassing a first contiguous clusterof force values in the first force image; and calculating the firstgeometric dimension as a function of an area encompassed by thecontiguous boundary; and wherein detecting the first input on the touchsensor surface comprises interpreting the first contiguous cluster offorce values in the first force image exceeding a minimum forcethreshold as the first input.
 13. The method of claim 1, furthercomprising, during the first scan cycle: calculating a first best-fitboundary encompassing the first input on the touch sensor surface; andextracting the first geometry dimension from the first best-fit boundaryof the first input.
 14. The method of claim 13: wherein extracting thefirst geometry dimension from the first best-fit boundary comprisesextracting a first length of a major axis of the first best-fit boundarydefining a first best-fit ellipse; and wherein characterizing the firstinput as a finger input type in response to the first geometry dimensionof the first input falling below the first threshold comprisescharacterizing the first input as the finger input type in response tothe first geometry dimension of the first best-fit ellipse falling belowthe first threshold.
 15. The method of claim 14: further comprising,during the first scan cycle: extracting a second length of a minor axisof the first best-fit ellipse; and calculating a first area of the firstbest-fit ellipse based on the first length of the major axis and thesecond length of the minor axis; and wherein characterizing the firstinput as the finger type input, in response to the first geometrydimension of the first input falling below the first threshold,comprises: calculating the first ratio of the first force magnitude ofthe first input to the first area of the first best-fit ellipse; and inresponse to the first ratio of the first force magnitude of the firstinput to the first area of the first best-fit ellipse exceeding thesecond threshold, characterizing the first input as the finger inputtype.
 16. A method for detecting and characterizing inputs comprising:during a first scan cycle: reading a first set of force values from anarray of sense electrodes supporting a touch sensor surface; detecting afirst input at a first location on the touch sensor surface;interpreting a first force magnitude of the first input based on thefirst set of force values; in response to a first ratio of the firstforce magnitude of the first input to a first geometry dimension of thefirst input exceeding a first threshold, characterizing the first inputas a finger input type; and recording the first location and a firstinput type of the first input; and during a second scan cycle,succeeding the first scan cycle: reading a second set of force valuesfrom the array of sense electrodes; detecting a second input at a secondlocation proximal the first location on the touch sensor surface;interpreting a second force magnitude of the second input based on thesecond set of force values; in response to a second ratio of the secondforce magnitude of the second input to a second geometry dimension ofthe second input exceeding the first threshold: characterizing thesecond input as the finger input type; and in response to a firstdistance between the first input and the second input falling within afirst threshold distance, confirming the first input as the finger inputtype; and recording the second location and a second input type of thesecond input.
 17. The method of claim 16, further comprising, during athird scan cycle: reading a third set of force values from the array ofsense electrodes; detecting a third input at a third location on thetouch sensor surface; interpreting a third force magnitude of the thirdinput based on the third set of force values; in response to a thirdratio of the third force magnitude of the third input to a thirdgeometry dimension of the third input falling below the first threshold,characterizing the third input as a non-finger input type; and recordingthe third location and a third input type of the third input.
 18. Themethod of claim 17, further comprising, during a fourth scan cycle,succeeding the third scan cycle: accessing the third location of thethird input; reading a fourth set of force values from the array ofsense electrodes; detecting a fourth input at a fourth location proximalthe third location on the touch sensor surface; interpreting a fourthforce magnitude of the fourth input based on the fourth set of forcevalues; and in response to a fourth ratio of the fourth force magnitudeof the fourth input to a fourth geometry dimension of the fourth inputfalling below the first threshold: characterizing the fourth input asthe non-finger input type; and in response to a second distance betweenthe third input and the fourth input falling within a second thresholddistance, confirming the third input as the non-finger input type.